-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      name:  <unnamed>
       log:  F:\Dropbox\Research\PSRM\replication file\data\mainresult.log
  log type:  text
 opened on:  10 Dec 2025, 16:22:28

. 
. 
.  
.   **********************************************************
. ****Main results
. **********************************************************
.  
.  
.  
.  
.  
.  
. **********************************************************
. ****Figure 1
. **********************************************************
. 
. 
. *******************************
. **Data analysis
. *******************************
. 
. 
. ****The code for results for CHFS(list experiment) is included in the R script file titled "Figure 1".
. 
. 
. 
. 
. 
.  
. 
. use "CFPS_2014.dta",clear

. 
.  **2014
. ci means trust_cadre_dummy

    Variable |        Obs        Mean    Std. err.       [95% conf. interval]
-------------+---------------------------------------------------------------
trust_cadr~y |     16,747    .3778587    .0037467        .3705147    .3852027

. 
. 
. use "CFPS_2016.dta",clear

. 
.  **2016
. ci means trust_cadre_dummy

    Variable |        Obs        Mean    Std. err.       [95% conf. interval]
-------------+---------------------------------------------------------------
trust_cadr~y |     15,873    .3560764    .0038008        .3486264    .3635263

. 
. 
. 
. *******************************
. **Figure Plot
. *******************************
. clear

. 
. import excel "mean.xlsx", sheet("all") firstrow
(6 vars, 5 obs)

. 
. set scheme s1mono

. 
. gen percent=100*round(proportion,.0001)
(2 missing values generated)

. tostring percent, gen(text) force
text generated as str11
text was forced to string; some loss of information

. gen text1=substr(text, 1, 5)

.  
. gen p="%"

. egen txt_percent = concat(text1 p) 

. 
. twoway ///
> (rcap low95 high95 row, vert ) /// 
> (scatter proportion row if group ==1, mcolor(gs8)  lcolor(gs8) lpattern(solid) mlabel(txt_percent ) msize(vsmall) mlabposition(10)) /// 
> (scatter proportion row if group ==2, mcolor(gs8)  lcolor(gs8)  lpattern(dash) mlabel(txt_percent ) msize(vsmall) mlabposition(10)) /// 
> (scatter proportion row if group ==3, mcolor(black) lcolor(black)  lpattern(solid) mlabel(txt_percent ) msize(vsmall) mlabposition(10)) /// 
> , leg(off) /// 
> xlabel(2 "CHFS(List Exp.)" 3 "CFPS(Listwise, 2014)" 4 "CFPS(Listwise, 2016)" , angle(0) noticks labsize(vsmall)) ///
> ylabel(0 "0%" 0.1 "10%" 0.2 "20%"  0.3 "30%"  0.40 "40%" 0.5 "50%", angle(0)) /// 
> xtitle("Local Political Trust",height(5)) ///
> ytitle("Estimated Proportion") 

. 
.  graph export "$path\fig_1.pdf", as(pdf) replace
file F:\Dropbox\Research\PSRM\replication file\fig_1.pdf saved as PDF format

. 
. 
. 
. 
. 
. 
. **********************************************************
. ****Figure 2
. **********************************************************
. 
. 
. ****Notes:
. ****The figure plots the estimated coefficients in Table A5, for original data analysis, please check the code for Table A5
. 
. 
. 
. 
. clear

. 
. import excel "results.xlsx", sheet("insurance") firstrow
(6 vars, 13 obs)

. 
. tostring coef, gen(text) force
text generated as str5

. 
.  set scheme s1mono

. 
. twoway ///
> (rcap low95 high95 row, vert ) /// 
> (scatter coef row if group ==1, mcolor(gs8)  msymbol(o)mlabel(text) mlabposition(11)) /// 
> (scatter coef row if group ==2, mcolor(gs8) msymbol(d)   mlabel(text ) mlabposition(8)) /// 
> (scatter coef row if group ==3, mcolor(black) msymbol(s)  mlabel(text ) mlabposition(8)) /// 
> , legend(row(1) order(2 "CHFS(list)" 3 "CFPS 2014" 4 "CFPS 2016" ) pos(6)) /// 
> xlabel(3 "Health Insurance" 7 "Pension Insurance" 11 "New Rural Pension Scheme"  , angle(0) noticks labsize(small)) ///
> ylabel(-0.8(0.2)0.6) yline(0) ///
> xtitle("Social Insurance",height(5)) ///
> ytitle("The Effects of Social Insurance on Trust in Local Officials", height(5) size(small)) title("",height(5) size(normarlsize)) ///
> graphregion(fcolor(white)) ylab(,nogrid) 
(note:  named style normarlsize not found in class gsize, default attributes used)

. 
. 
. 
. graph export "$path\fig_2.pdf", as(pdf) replace
file F:\Dropbox\Research\PSRM\replication file\fig_2.pdf saved as PDF format

. 
. 
. 
. 
. 
. 
. 
.   *************************************************************
. **** Figure 3
. ************************************************************** 
.  
.  use "boot_list_direct",clear

.  
.  
.  
.  ttest  direct_coef_health==list_coef_health

Paired t test
------------------------------------------------------------------------------
Variable |     Obs        Mean    Std. err.   Std. dev.   [95% conf. interval]
---------+--------------------------------------------------------------------
direct.. |   1,000    .9917566    .0359872    1.138014    .9211375    1.062376
list_c~h |   1,000   -.2782009     .005131     .162257   -.2882697   -.2681321
---------+--------------------------------------------------------------------
    diff |   1,000    1.269958    .0364902    1.153922    1.198351    1.341564
------------------------------------------------------------------------------
     mean(diff) = mean(direct_coef_he~h - list_coef_health)       t =  34.8027
 H0: mean(diff) = 0                              Degrees of freedom =      999

 Ha: mean(diff) < 0           Ha: mean(diff) != 0           Ha: mean(diff) > 0
 Pr(T < t) = 1.0000         Pr(|T| > |t|) = 0.0000          Pr(T > t) = 0.0000

.  
.  ttest  direct_coef_pension==list_coef_pension

Paired t test
------------------------------------------------------------------------------
Variable |     Obs        Mean    Std. err.   Std. dev.   [95% conf. interval]
---------+--------------------------------------------------------------------
direct.. |     999    1.783074    .0440333    1.391757    1.696665    1.869482
list_c~n |     999   -.0493589    .0033475    .1058047   -.0559279   -.0427899
---------+--------------------------------------------------------------------
    diff |     999    1.832433    .0442056    1.397205    1.745686    1.919179
------------------------------------------------------------------------------
     mean(diff) = mean(direct_coef_pe~n - list_coef_pens~n)       t =  41.4525
 H0: mean(diff) = 0                              Degrees of freedom =      998

 Ha: mean(diff) < 0           Ha: mean(diff) != 0           Ha: mean(diff) > 0
 Pr(T < t) = 1.0000         Pr(|T| > |t|) = 0.0000          Pr(T > t) = 0.0000

. 
.  ttest  direct_coef_nrpp==list_coef_nrpp 

Paired t test
------------------------------------------------------------------------------
Variable |     Obs        Mean    Std. err.   Std. dev.   [95% conf. interval]
---------+--------------------------------------------------------------------
d~f_nrpp |   1,000    .8834416    .0376038    1.189136    .8096501    .9572331
l~f_nrpp |   1,000    .0783484    .0043809    .1385357    .0697516    .0869452
---------+--------------------------------------------------------------------
    diff |   1,000    .8050932    .0381151    1.205304    .7302985     .879888
------------------------------------------------------------------------------
     mean(diff) = mean(direct_coef_nrpp - list_coef_nrpp)         t =  21.1227
 H0: mean(diff) = 0                              Degrees of freedom =      999

 Ha: mean(diff) < 0           Ha: mean(diff) != 0           Ha: mean(diff) > 0
 Pr(T < t) = 1.0000         Pr(|T| > |t|) = 0.0000          Pr(T > t) = 0.0000

.  
.  
. 
. 
. 
. clear

. 
. 
. 
. import excel "results.xlsx", sheet("diff1") firstrow
(7 vars, 7 obs)

. 
. 
. twoway ///
> (rcap low95 high95 row, vert lcolor(black)) /// 
> (scatter coef row if group == 1, lcolor(black) mcolor(black) msize(small) lpattern(solid)) /// 
> (scatter coef row if group == 2, lcolor(black) mcolor(black) msize(small) lpattern(solid)) /// 
> (scatter coef row if group == 3, lcolor(black) mcolor(black) msize(small) lpattern(solid)) /// 
> , leg(off) /// 
> xlabel(2 "Health Insurance" 3 "Pension Insurance" 4 "NRPS", angle(0) labsize(small)) /// 
> ytitle("Direct-List Difference", height(5) size(small)) /// 
> title("", size(small) color(black)) /// 
> ylabel(0(0.5)2) xtitle("", height(5)) /// 
> graphregion(fcolor(white)) ylab(, nogrid)

. 
. graph export "$path\fig_3.pdf", as(pdf) replace
file F:\Dropbox\Research\PSRM\replication file\fig_3.pdf saved as PDF format

. 
. 
. 
. 
. 
. 
. 
. 
. 
. **********************************************************
. ****Figure 4
. **********************************************************
. 
. *******************************
. **Data analysis
. *******************************
. 
. 
. **list 
. ***The code for the list experiment results is included in the R script entitled "Figure 4"
. 
. 
. *** OLS
.  use "CFPS_2014",clear

. 
.  reg trust_cadre_dummy NRPP logfincome  age male school_yr hukou ccp  log_pop_10_13  log_gdp_pc_10_13 pro_rural  if rural==1

      Source |       SS           df       MS      Number of obs   =     8,152
-------------+----------------------------------   F(10, 8141)     =     18.15
       Model |  43.3348416        10  4.33348416   Prob > F        =    0.0000
    Residual |  1943.94767     8,141  .238784875   R-squared       =    0.0218
-------------+----------------------------------   Adj R-squared   =    0.0206
       Total |  1987.28251     8,151  .243808429   Root MSE        =    .48866

----------------------------------------------------------------------------------
trust_cadre_du~y | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-----------------+----------------------------------------------------------------
            NRPP |   .0433187   .0186596     2.32   0.020      .006741    .0798964
      logfincome |   .0037943     .00439     0.86   0.387    -.0048113    .0123999
             age |   .0027479   .0004312     6.37   0.000     .0019026    .0035931
            male |  -.0017033   .0113349    -0.15   0.881    -.0239226     .020516
       school_yr |  -.0037486   .0014531    -2.58   0.010    -.0065969   -.0009002
           hukou |   .0299757     .03801     0.79   0.430    -.0445335    .1044849
             ccp |    .075608   .0252941     2.99   0.003     .0260251    .1251908
   log_pop_10_13 |  -.0067267   .0130778    -0.51   0.607    -.0323625    .0189092
log_gdp_pc_10_13 |   .0018261   .0181153     0.10   0.920    -.0336846    .0373368
       pro_rural |   .2282748   .0667091     3.42   0.001     .0975079    .3590418
           _cons |   .1256034   .2324338     0.54   0.589    -.3300261    .5812329
----------------------------------------------------------------------------------

. 
. **individual FE
. 
. 
.   use "CFPS_panel.dta",clear

.  
. xtreg trust_cadre_dummy  NRPP logfincome  age  male school_yr hukou ccp log_pop  log_gdp_pc pro_rural i.year if rural==1,fe
note: male omitted because of collinearity.

Fixed-effects (within) regression               Number of obs     =     15,663
Group variable: pid                             Number of groups  =      9,984

R-squared:                                      Obs per group:
     Within  = 0.0073                                         min =          1
     Between = 0.0032                                         avg =        1.6
     Overall = 0.0029                                         max =          2

                                                F(10, 5669)       =       4.19
corr(u_i, Xb) = -0.4911                         Prob > F          =     0.0000

------------------------------------------------------------------------------
trust_cadr~y | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
        NRPP |  -.0026731    .023925    -0.11   0.911    -.0495753    .0442291
  logfincome |   .0080058   .0062358     1.28   0.199    -.0042189    .0202304
         age |   .0063091   .0330875     0.19   0.849     -.058555    .0711731
        male |          0  (omitted)
   school_yr |   .0148167   .0069804     2.12   0.034     .0011325     .028501
       hukou |   .0227918   .1251004     0.18   0.855    -.2224529    .2680365
         ccp |  -.0442231   .0509982    -0.87   0.386    -.1441991    .0557529
     log_pop |  -.2240867   .0945127    -2.37   0.018    -.4093678   -.0388056
  log_gdp_pc |  -.4222436   .1354362    -3.12   0.002    -.6877504   -.1567368
   pro_rural |  -.1800341   .2068493    -0.87   0.384    -.5855378    .2254696
             |
        year |
       2016  |   .0242295   .0729027     0.33   0.740    -.1186877    .1671468
             |
       _cons |   5.725265   2.243296     2.55   0.011     1.327546    10.12298
-------------+----------------------------------------------------------------
     sigma_u |  .49016216
     sigma_e |  .43275098
         rho |  .56196669   (fraction of variance due to u_i)
------------------------------------------------------------------------------
F test that all u_i=0: F(9983, 5669) = 1.41                  Prob > F = 0.0000

. 
.  ***DID
.  use "CFPS_10_12.dta",clear

. 
. reghdfe support_gov_dummy treat   logfincome  age  male school_yr  ccp  pro_rural logpop logpgdp if rural==1 & age>=60, ab(countyID year) cluster(cntygb)
(dropped 2 singleton observations)
(converged in 4 iterations)

HDFE Linear regression                            Number of obs   =      7,203
Absorbing 2 HDFE groups                           F(   9,    136) =       2.04
Statistics robust to heteroskedasticity           Prob > F        =     0.0392
                                                  R-squared       =     0.0898
                                                  Adj R-squared   =     0.0709
                                                  Within R-sq.    =     0.0025
Number of clusters (cntygb)  =        137         Root MSE        =     0.4580

                               (Std. err. adjusted for 137 clusters in cntygb)
------------------------------------------------------------------------------
             |               Robust
support_go~y | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
       treat |   .0166031   .0393584     0.42   0.674    -.0612305    .0944367
  logfincome |   .0033059   .0056828     0.58   0.562    -.0079322    .0145441
         age |   .0022011   .0008081     2.72   0.007     .0006032    .0037991
        male |   .0029995   .0131793     0.23   0.820    -.0230633    .0290623
   school_yr |   .0030623   .0021358     1.43   0.154    -.0011613     .007286
         ccp |   .0487592   .0254345     1.92   0.057     -.001539    .0990575
   pro_rural |  -.1232587   .1556075    -0.79   0.430    -.4309819    .1844646
      logpop |   .0552881   .1170746     0.47   0.638    -.1762341    .2868103
     logpgdp |   .2114599   .2281759     0.93   0.356    -.2397717    .6626916
------------------------------------------------------------------------------

Absorbed degrees of freedom:
---------------------------------------------------------------+
 Absorbed FE |  Num. Coefs.  =   Categories  -   Redundant     | 
-------------+-------------------------------------------------|
    countyID |            0             137            137 *   | 
        year |            1               2              1     | 
---------------------------------------------------------------+
* = fixed effect nested within cluster; treated as redundant for DoF computation

. 
. 
. ***IV
.  use "CFPS_2014",clear

. 
.  
.  ivreg2   trust_cadre_dummy (NRPP=agedummy ) logfincome  age male school_yr hukou ccp  log_pop_10_13  log_gdp_pc_10_13 pro_rural  if rural==1

IV (2SLS) estimation
--------------------

Estimates efficient for homoskedasticity only
Statistics consistent for homoskedasticity only

                                                      Number of obs =     8152
                                                      F( 10,  8141) =    17.71
                                                      Prob > F      =   0.0000
Total (centered) SS     =  1987.282507                Centered R2   =   0.0218
Total (uncentered) SS   =         3433                Uncentered R2 =   0.4337
Residual SS             =  1943.952463                Root MSE      =    .4883

----------------------------------------------------------------------------------
trust_cadre_du~y | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-----------------+----------------------------------------------------------------
            NRPP |   .0406739   .0404819     1.00   0.315     -.038669    .1200169
      logfincome |   .0037877    .004388     0.86   0.388    -.0048127     .012388
             age |   .0027736   .0005548     5.00   0.000     .0016862     .003861
            male |  -.0017014   .0113273    -0.15   0.881    -.0239024    .0204997
       school_yr |  -.0037585   .0014583    -2.58   0.010    -.0066166   -.0009003
           hukou |   .0299724   .0379844     0.79   0.430    -.0444756    .1044204
             ccp |   .0755386   .0252946     2.99   0.003     .0259621    .1251151
   log_pop_10_13 |  -.0066624   .0130982    -0.51   0.611    -.0323343    .0190096
log_gdp_pc_10_13 |   .0017919   .0181091     0.10   0.921    -.0337013    .0372851
       pro_rural |   .2283204   .0666671     3.42   0.001     .0976554    .3589855
           _cons |   .1247718   .2325518     0.54   0.592    -.3310213    .5805649
----------------------------------------------------------------------------------
Underidentification test (Anderson canon. corr. LM statistic):        1729.675
                                                   Chi-sq(1) P-val =    0.0000
------------------------------------------------------------------------------
Weak identification test (Cragg-Donald Wald F statistic):             2192.552
Stock-Yogo weak ID test critical values: 10% maximal IV size             16.38
                                         15% maximal IV size              8.96
                                         20% maximal IV size              6.66
                                         25% maximal IV size              5.53
Source: Stock-Yogo (2005).  Reproduced by permission.
------------------------------------------------------------------------------
Sargan statistic (overidentification test of all instruments):           0.000
                                                 (equation exactly identified)
------------------------------------------------------------------------------
Instrumented:         NRPP
Included instruments: logfincome age male school_yr hukou ccp log_pop_10_13
                      log_gdp_pc_10_13 pro_rural
Excluded instruments: agedummy
------------------------------------------------------------------------------

. 
.  
. **fuzzy RD,*bandwidth==6
. 
. 
. ivreg2   trust_cadre_dummy (NRPP=agedummy agediff)  agediff male school_yr hukou ccp  log_pop_10_13  log_gdp_pc_10_13 pro_rural  if age<=66&age>=54 &rural==1
Warning - duplicate variables detected
Duplicates:         agediff

IV (2SLS) estimation
--------------------

Estimates efficient for homoskedasticity only
Statistics consistent for homoskedasticity only

                                                      Number of obs =     2108
                                                      F(  9,  2098) =     2.58
                                                      Prob > F      =   0.0059
Total (centered) SS     =  525.2348197                Centered R2   =   0.0108
Total (uncentered) SS   =          993                Uncentered R2 =   0.4768
Residual SS             =  519.5796047                Root MSE      =    .4965

----------------------------------------------------------------------------------
trust_cadre_du~y | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-----------------+----------------------------------------------------------------
            NRPP |  -.0031752   .2232627    -0.01   0.989    -.4407619    .4344116
         agediff |   .0004818   .0142659     0.03   0.973    -.0274789    .0284425
            male |  -.0029172   .0241006    -0.12   0.904    -.0501536    .0443191
       school_yr |   -.002778   .0029683    -0.94   0.349    -.0085957    .0030398
           hukou |  -.0975289   .1099296    -0.89   0.375    -.3129871    .1179292
             ccp |   .0837907   .0435409     1.92   0.054    -.0015479    .1691292
   log_pop_10_13 |   .0093821   .0268485     0.35   0.727    -.0432399    .0620041
log_gdp_pc_10_13 |  -.0357566   .0371968    -0.96   0.336    -.1086609    .0371477
       pro_rural |   .1955941   .1341197     1.46   0.145    -.0672756    .4584638
           _cons |   .7721894   .4787291     1.61   0.107    -.1661025    1.710481
----------------------------------------------------------------------------------
Underidentification test (Anderson canon. corr. LM statistic):          35.429
                                                   Chi-sq(1) P-val =    0.0000
------------------------------------------------------------------------------
Weak identification test (Cragg-Donald Wald F statistic):               35.864
Stock-Yogo weak ID test critical values: 10% maximal IV size             16.38
                                         15% maximal IV size              8.96
                                         20% maximal IV size              6.66
                                         25% maximal IV size              5.53
Source: Stock-Yogo (2005).  Reproduced by permission.
------------------------------------------------------------------------------
Sargan statistic (overidentification test of all instruments):           0.000
                                                 (equation exactly identified)
------------------------------------------------------------------------------
Instrumented:         NRPP
Included instruments: agediff male school_yr hukou ccp log_pop_10_13
                      log_gdp_pc_10_13 pro_rural
Excluded instruments: agedummy
Duplicates:           agediff
------------------------------------------------------------------------------

. 
. 
.  
. **matching
. 
.  psmatch2 NRPP logfincome  age  male school_yr hukou ccp log_pop_10_13  log_gdp_pc_10_13 pro_rural  if rural==1, out(trust_cadre_dummy) neighbor(3) caliper(0.01) 

Probit regression                                      Number of obs =   8,152
                                                       LR chi2(9)    = 2577.84
                                                       Prob > chi2   =  0.0000
Log likelihood = -1813.5013                            Pseudo R2     =  0.4155

----------------------------------------------------------------------------------
            NRPP | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-----------------+----------------------------------------------------------------
      logfincome |   .0551372   .0181637     3.04   0.002      .019537    .0907373
             age |   .0879251   .0026674    32.96   0.000     .0826972    .0931531
            male |   .0383809   .0518581     0.74   0.459    -.0632592     .140021
       school_yr |  -.0363114    .006518    -5.57   0.000    -.0490864   -.0235363
           hukou |   .9978157   .3825947     2.61   0.009     .2479439    1.747688
             ccp |  -.1482739    .095398    -1.55   0.120    -.3352506    .0387028
   log_pop_10_13 |   .0490906   .0567114     0.87   0.387    -.0620618    .1602429
log_gdp_pc_10_13 |  -.0906792   .0807175    -1.12   0.261    -.2488825    .0675242
       pro_rural |   .1245589   .3035357     0.41   0.682    -.4703602    .7194781
           _cons |  -7.081485    1.12365    -6.30   0.000    -9.283798   -4.879171
----------------------------------------------------------------------------------
There are observations with identical propensity score values.
The sort order of the data could affect your results.
Make sure that the sort order is random before calling psmatch2.
----------------------------------------------------------------------------------------
        Variable     Sample |    Treated     Controls   Difference         S.E.   T-stat
----------------------------+-----------------------------------------------------------
trust_cadre_du~y  Unmatched | .527536232   .405648447   .121887785   .016371655     7.45
                        ATT | .527536232   .474074074   .053462158    .02489475     2.15
----------------------------+-----------------------------------------------------------
Note: S.E. does not take into account that the propensity score is estimated.

           | psmatch2:
 psmatch2: |   Common
 Treatment |  support
assignment | On suppor |     Total
-----------+-----------+----------
 Untreated |     7,117 |     7,117 
   Treated |     1,035 |     1,035 
-----------+-----------+----------
     Total |     8,152 |     8,152 

. 
.  
.  
. *******************************
. **Figure Plot
. *******************************
. 
. 
. 
. clear

. 
. import excel "results.xlsx", sheet("NRPP") firstrow
(7 vars, 9 obs)

. 
. set scheme s1mono

. 
. gen coef=round(coefficient,.001)
(2 missing values generated)

. tostring coef, gen(text) force
text generated as str11
text was forced to string; some loss of information

. gen text1=substr(text, 1, 5)

. replace text1="0.043" if group==1
(1 real change made)

. replace text1="0.008" if group==2
(1 real change made)

. replace text1="-0.003" if group==3
variable text1 was str5 now str6
(1 real change made)

. replace text1="0.017" if group==4
(1 real change made)

. replace text1="0.041" if group==5
(1 real change made)

. replace text1="-0.003" if group==6
(1 real change made)

. replace text1="0.053" if group==7
(1 real change made)

. 
. 
. 
. twoway ///
> (rcap low95 high95 row, vert ) /// 
> (scatter coefficient row if group ==1,  color(gs8) lpattern(solid)  mlabel(text1) mlabposition(11))  /// 
> (scatter  coefficient row if group ==2, color(gs8) lpattern(solid)  mlabel(text1) mlabposition(11)) /// 
> (scatter  coefficient row if group ==3, color(gs8) lpattern(solid)  mlabel(text1) mlabposition(11)) ///
> (scatter  coefficient row if group ==4,  color(gs8) lpattern(solid)  mlabel(text1) mlabposition(11)) ///  
> (scatter  coefficient row if group ==5,  color(gs8) lpattern(solid)  mlabel(text1) mlabposition(11)) /// 
> (scatter  coefficient row if group ==6,  color(gs8) lpattern(solid)  mlabel(text1) mlabposition(11)) /// 
> (scatter  coefficient row if group ==7,  color(gs8) lpattern(solid)  mlabel(text1) mlabposition(11)) /// 
> , leg(off) /// 
> xlabel(2 "OLS" 3 "List" 4 "Individual FE" 5 "DID" 6 "IV" 7 "Fuzzy RD" 8 "Matching", angle(0) noticks labsize(small)) ///
> xtitle("Identification Strategies",height(5)) ylabel(-0.6[0.2]0.6)  ///
> ytitle("Estimated Coefficient of NRPS",height(5))  yline(0, lpattern(dash) lcolor(red))

. 
. graph export "$path\fig_4.pdf", as(pdf) replace
file F:\Dropbox\Research\PSRM\replication file\fig_4.pdf saved as PDF format

. 
. 
. 
. 
. 
. log close
      name:  <unnamed>
       log:  F:\Dropbox\Research\PSRM\replication file\data\mainresult.log
  log type:  text
 closed on:  10 Dec 2025, 16:22:46
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
